# CMakeLists.txt
cmake_minimum_required(VERSION 2.8.12)

# 项目名称（生成的动态库名为 libnet_framework.so）
project(net_framework CXX)

# 设置编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra")

# 框架核心库名称
set(FRAMEWORK_NAME net_framework)

# 1. 收集框架源文件
file(GLOB_RECURSE FRAMEWORK_SOURCES
    ${PROJECT_SOURCE_DIR}/src/*.cpp
)

# 2. 包含框架头文件目录
include_directories(
    ${PROJECT_SOURCE_DIR}/include
)

# 3. 生成动态库
add_library(${FRAMEWORK_NAME} SHARED ${FRAMEWORK_SOURCES})

# 4. 链接依赖库（如线程库）
target_link_libraries(${FRAMEWORK_NAME} pthread)

# 5. 设置输出目录（框架库生成到 build/lib 下）
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)